const cors = require('koa2-cors');
const fs = require('fs');
const path = require('path'); //解析需要遍历的文件夹
const axios = require('axios');
const request = require('request');
// import koaJWT from 'koa-jwt';
// import jwt from 'jsonwebtoken';

const Router = require('koa-router');
const Koa = require('koa');
const app = new Koa();
const server = require('http').createServer(app.callback());

app.use(cors()); // 设置允许跨域

// 方便拿到post请求数据
const bodyParser = require('koa-bodyparser');
app.use(bodyParser());

// 访问静态资源
const static_ = require('koa-static');
app.use(static_(path.join(__dirname, './static')));

const router = new Router(); // 创建路由，支持传递参数

//根据文件路径读取文件，返回文件列表
const p = path.resolve(__dirname, './api');
const { readFile } = require('./utils/hepler.js');
readFile(p, router);

// 调用router.routes()来组装匹配好的路由，返回一个合并好的中间件
// 调用router.allowedMethods()获得一个中间件，当发送了不符合的请求时，会返回 `405 Method Not Allowed` 或 `501 Not Implemented`
app.use(router.routes());
app.use(
  router.allowedMethods({
    // throw: true, // 抛出错误，代替设置响应头状态
    // notImplemented: () => '不支持当前请求所需要的功能',
    // methodNotAllowed: () => '不支持的请求方式'
  })
);

server.listen(3000, () => {
  console.log('mock serve listen in http://127.0.0.1:3000');
});
